use super::dslerror::DslError;

pub enum CapabiltyBackend {
    GeneralCpu,
    Amd64,
    AArch64,
    NvidiaGpu,
    XilinxFPGA,
}

pub trait Capability {
    type Params;
    const InputSize:usize;
    const OutputSize:usize;
    fn name() -> &'static str;
    fn hash(&self,p:Self::Params,method:Capability) -> Ukey;
    fn to_task(&self,p:Self::Params,method:Capability) -> Result<Task<Params>,DslError>;    
}
